import Vue from 'vue'

// 聚焦指令
Vue.directive('focus', {
  // 第一次
  inserted (e) {
    focus(e)
  },
  // 除第一次以外
  update (e) {
    focus(e)
  }
})

function focus (e) {
  if (['INPUT', 'TEXTAREA'].indexOf(e.tagName) !== -1) {
    e.focus()
  } else {
    let node = e.querySelector('input')
    if (node) {
      node.focus()
      return
    }
    node = e.querySelector('textarea')
    if (node) {
      node.focus()
      return
    }
    // 抛出错误
    throw new Error('请把focus指令用在input或textarea上')
  }
}
